// pages/assetList/assetList.js
import {getAssetListPage} from '@/api/assetList'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    name:"",
    active: 0,
    assetAllList:[],
    queryOption: {
      pageNum: 1,
      pageSize: 10,
      name:"",
      status:"",
      assignedTo:0,
    },
    //总数
    total: 0,
    //分了几页
    pages: 0,
  },

  onSearch(e) {
    console.log("search", e);
    // 获取搜索关键词
    const name = e.detail || "";
    
    // 搜索的时候结合当前选中的tab进行搜索
    this.setData({
      name: name,
      ['queryOption.pageNum']: 1,
      assetAllList: [] // 清空当前列表，准备重新加载
    });
    
    this.getAssetListData(this.data.status, name);
  },

  onTabClick(event) {
    let { index } = event.detail;
    let status = "";
    
    // 重置页码和清空数据列表
    this.setData({
      ['queryOption.pageNum']: 1,
      assetAllList: []
    });

    console.log(event, "tab");

    // 根据不同的标签设置对应的 status 值
    if (index == 0) {
      this.setData({ status: "" });
      this.getAssetListData("", this.data.name); // 全部资产
    } else if (index == 1) {
      this.setData({ status: "2" });
      this.getAssetListData(2, this.data.name); // 使用中
    } else if (index == 2) {
      this.setData({ status: "3" });
      this.getAssetListData(3, this.data.name); // 维修中
    }
  },

  getMoreData() {
    console.log("加载更多数据");
    if (this.data.queryOption.pageNum >= this.data.pages) {
      wx.showToast({
        title: '没有更多数据了',
        icon: 'none'
      });
      return;
    }
    this.setData({
      ['queryOption.pageNum']: this.data.queryOption.pageNum + 1
    });
    this.getAssetListData(this.data.status, this.data.name);
  },

  getAssetListData(status = this.data.status, assetName = this.data.name) {
    getAssetListPage({
      pageNum: this.data.queryOption.pageNum,
      pageSize: this.data.queryOption.pageSize,
      assignedTo: wx.getStorageSync('id'),
      status: status, // 动态传递 status 参数
      name: assetName
    }).then(res => {
      console.log(res, "资产列表数据");
      // 判断是否是第一页，如果是则直接赋值，否则追加数据
      const newAssets = this.data.queryOption.pageNum === 1 ? res.data.list : [...this.data.assetAllList, ...res.data.list];
      this.setData({
        assetAllList: newAssets,
        total: res.data.total,
        pages: res.data.pages
      });
    }).catch(err => {
      console.error("获取资产列表失败", err);
      wx.showToast({
        title: '获取数据失败',
        icon: 'none'
      });
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 初始化用户ID
    const userId = wx.getStorageSync('id');
    if (userId) {
      this.setData({
        'queryOption.assignedTo': userId
      });
    }
    
    this.getAssetListData();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 重置页码和清空数据列表
    this.setData({
      ['queryOption.pageNum']: 1,
      assetAllList: []
    });
    
    // 重新加载数据
    this.getAssetListData(this.data.status, this.data.name);
    
    // 停止下拉刷新
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 调用加载更多数据的函数
    this.getMoreData();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})